Skip to main content

문자열 압축

function solution(word) {
const answer = [];
const limitCount = Math.ceil(word.length / 2);

for (let i = 1; i <= limitCount; i++) {
let compressWord = "";
let preText = "";
let loopCount = 1;

for (let l = 0; l < word.length; l += i) {
const curText = word.substr(l, i);

if (preText === curText) {
loopCount += 1;
} else {
compressWord += `${loopCount > 1 ? loopCount : ""}${preText}`;
preText = curText;
loopCount = 1;
}
}

compressWord += `${1 < loopCount ? loopCount : ""}${preText}`;
preText = "";
loopCount = 1;

answer.push(compressWord.length);
}
return Math.min(...answer);
}

이 문제 푸는데 1시간이나 걸렸다.. 알고리즘 공부 열심히 해야겠다...

References